home *** CD-ROM | disk | FTP | other *** search
/ Aminet 12 / Aminet 12 (1996)(GTI - Schatztruhe)[!][Jun 1996].iso / Aminet / dev / e / framework.lha / fw / wbCommodity.e < prev    next >
Encoding:
Text File  |  1996-01-29  |  2.5 KB  |  102 lines

  1.  
  2. -> wbCommodity is an abstraction of commodities.
  3.  
  4. -> Copyright © Guichard Damien 01/04/1996
  5.  
  6. OPT MODULE
  7. OPT EXPORT
  8.  
  9. MODULE 'commodities','libraries/commodities'
  10. MODULE 'fw/wbObject','fw/wbMessagePort'
  11.  
  12. OBJECT wbCommodity OF wbMessagePort
  13.   broker
  14. ENDOBJECT
  15.  
  16. -> Create a commodity.
  17. -> Return FALSE if failed.
  18. PROC create(name,line1,line2,hotkey,eventId,priority) OF wbCommodity HANDLE
  19.   DEF broker,filter,sender,translate
  20.   IF cxbase=NIL THEN Raise(0)
  21.   IF self.makePort()=FALSE THEN Raise(0)
  22.   IF (broker:=CxBroker([NB_VERSION,0,
  23.     name,
  24.     line1,
  25.     line2,
  26.     NBU_UNIQUE OR NBU_NOTIFY,
  27.     COF_SHOW_HIDE,
  28.     priority,
  29.     0,self.port,0]:newbroker,NIL))=NIL THEN Raise(0)
  30.  
  31.   IF (filter:=CreateCxObj(CX_FILTER,hotkey,0))=NIL THEN Raise(0)
  32.   AttachCxObj(broker,filter)
  33.   IF (sender:=CreateCxObj(CX_SEND,self.port,eventId))=NIL THEN Raise(0)
  34.   AttachCxObj(filter,sender)
  35.   IF (translate:=CreateCxObj(CX_TRANSLATE,NIL,0))=NIL THEN Raise(0)
  36.   AttachCxObj(sender,translate)
  37.   IF CxObjError(filter) THEN Raise(0)
  38.   ActivateCxObj(broker,TRUE)
  39.   self.broker:=broker
  40.   RETURN TRUE
  41. EXCEPT
  42.   self.remove()
  43. ENDPROC FALSE
  44.  
  45. -> Handle the receipt of a message at the object's MsgPort.
  46. PROC handleMessage(msg) OF wbCommodity
  47.   DEF type,info
  48.   type:=CxMsgType(msg)
  49.   info:=CxMsgID(msg)
  50.   SELECT type
  51.   CASE CXM_IEVENT
  52.     RETURN self.handleIEvent(info)
  53.   CASE CXM_COMMAND
  54.     SELECT info
  55.     CASE CXCMD_DISABLE
  56.       RETURN self.handleDisable()
  57.     CASE CXCMD_ENABLE
  58.       RETURN self.handleEnable()
  59.     CASE CXCMD_APPEAR
  60.       RETURN self.handleAppear()
  61.     CASE CXCMD_DISAPPEAR
  62.       RETURN self.handleDisappear()
  63.     CASE CXCMD_KILL
  64.       RETURN self.handleKill()
  65.     CASE CXCMD_LIST_CHG
  66.       RETURN self.handleListChange()
  67.     CASE CXCMD_UNIQUE
  68.       RETURN self.handleUnique()
  69.     DEFAULT
  70.       RETURN self.defaultHandler()
  71.     ENDSELECT
  72.   ENDSELECT
  73. ENDPROC
  74.  
  75. PROC handleIEvent(info) OF wbCommodity IS PASS
  76.  
  77. PROC handleDisable() OF wbCommodity IS PASS
  78.  
  79. PROC handleEnable() OF wbCommodity IS PASS
  80.  
  81. PROC handleAppear() OF wbCommodity IS PASS
  82.  
  83. PROC handleDisappear() OF wbCommodity IS PASS
  84.  
  85. PROC handleKill() OF wbCommodity IS STOPALL
  86.  
  87. PROC handleListChange() OF wbCommodity IS PASS
  88.  
  89. PROC handleUnique() OF wbCommodity IS PASS
  90.  
  91. -> Default handler for message classes that don't have their own handler.
  92. -> Calling this should be considered a bug, leading to program halting.
  93. PROC defaultHandler() OF wbCommodity IS PASS
  94.  
  95. -> Remove the commodity.
  96. PROC remove() OF wbCommodity
  97.   IF self.broker THEN DeleteCxObjAll(self.broker)
  98.   IF self.port THEN self.deletePort()
  99.   self.broker:=NIL
  100. ENDPROC
  101.  
  102.